/**
 * Project Name: jeesite
 * Package Name: com.thinkgem.jeesite.modules.wx.entity
 */
package com.thinkgem.jeesite.modules.wx.entity;

import com.thinkgem.jeesite.modules.wx.dao.WxConfigDao;

import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;

/**
 * ClassName: WxMpDBConfigStorage <br/>
 * @Description: (描述) <br/>
 * @Date 2017年5月19日 下午4:13:06 <br/>
 * @author sea
 */
public class WxMpDBConfigStorage extends WxMpInMemoryConfigStorage {

	private WxConfig wxConfig;
	
	private WxConfigDao wxConfigDao;
	
	public String getAccessToken() {
		return this.wxConfig.getAccessToken();
	}

	public boolean isAccessTokenExpired() {
		return getAccessToken() == null;
	}

	public synchronized void updateAccessToken(String accessToken, int expiresInSeconds) {
		super.updateAccessToken(accessToken, expiresInSeconds);
		wxConfig.setAccessToken(accessToken);
		wxConfig.setExpiresTime(this.getExpiresTime());
		wxConfig.setAccessTokenExpires(expiresInSeconds);
		wxConfigDao.updateAccessToken(wxConfig);
	}
	
	public void expireAccessToken() {
		wxConfig.setAccessToken(null);
		wxConfig.setAccessTokenExpires(null);
		wxConfig.setExpiresTime(null);
		wxConfigDao.updateAccessToken(wxConfig);
	}

	public void setWxConfigDao(WxConfigDao wxConfigDao) {
		this.wxConfigDao = wxConfigDao;
	}
	
	public void setWxConfig(WxConfig wxConfig) {
		this.wxConfig = wxConfig;
	}
}

